package com.zpark.se.io.reader;

import java.io.*;

/**
 * 转换流：将字节流转换为字符流
 *      正常情况下，字节流可以对所有的数据进行操作，但是有些时候在处理一些文本时我们要用到字符流，
 * 比如，查看文本的中文时就是需要采用字符流更为方便。所以 Java IO 流中提供了两种用于将字节流转换
 * 为字符流的转换流。
 *		InputStreamReader 用于将字节输入流转换为字符输入流，其中 OutputStreamWriter 用于
 *	将字节输出流转换为字符输出流。使用转换流可以在一定程度上避免乱码，还可以指定输入输出所使用的字符
 *	集。
 */
public class Demo03 {
    public static void main(String[] args) throws Exception {
        /*
            案例：将数据以转换流的形式读取
         */
        /*FileInputStream fis = new FileInputStream("");
        // 创建字节流缓冲区
        BufferedInputStream bis = new BufferedInputStream(fis);

        // 创建转换流对象，指定编码类型
        InputStreamReader isr = new InputStreamReader(bis, "GBK");

        // 创建字符缓冲输入流对象
        BufferedReader br = new BufferedReader(isr);*/

        // 定义文件的路径
        String path = "src/com/zpark/se/io/reader/a/demo01.txt";

        BufferedReader br = new BufferedReader(
                new InputStreamReader(
                        new BufferedInputStream(
                                new FileInputStream(path)
                        ), "GBK")
        );

        // 读取文件数据
        String res = "";
        while((res = br.readLine()) != null){
            System.out.println(res);
        }

        // 关闭流
        br.close();
    }
}
